/* 
 * File:   BulletWrapper.h
 * Author: ja1e09
 *
 * Created on August 15, 2011, 6:06 PM
 */

#ifndef BULLETWRAPPER_H
#define	BULLETWRAPPER_H

#include "Global.h"
#include "Definitions.h"

// Bullet Physics
#include "btBulletDynamicsCommon.h"

// Singleton
class BulletWrapper
{
public:
    static BulletWrapper* GetInstance();
    void Destroy(void);
    void InitPhysics();
    void EndPhysics();
    void ReleasePhysics();

protected:
    BulletWrapper();
    BulletWrapper(const BulletWrapper&);
    BulletWrapper& operator=(const BulletWrapper&);

private:
    static BulletWrapper* pInstance;
    
    btDefaultCollisionConfiguration* pCollisionConfiguration;
    btCollisionDispatcher* pDispatcher;
    btBroadphaseInterface* pOverlappingPairCache;
    btSequentialImpulseConstraintSolver* pSolver;
    btDiscreteDynamicsWorld* pDynamicsWorld; 
};


#endif	/* BULLETWRAPPER_H */

